package com.netdisk.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.netdisk.dto.LoginDTO;
import com.netdisk.dto.RegisterDTO;
import com.netdisk.dto.StorageStatsDTO;
import com.netdisk.dto.UserDTO;
import com.netdisk.entity.User;

/**
 * 用户服务接口
 */
public interface UserService extends IService<User> {

    /**
     * 用户注册
     *
     * @param registerDTO 注册信息
     * @return 用户信息
     */
    UserDTO register(RegisterDTO registerDTO);

    /**
     * 用户登录
     *
     * @param loginDTO 登录信息
     * @return 用户信息
     */
    UserDTO login(LoginDTO loginDTO);

    /**
     * 获取用户信息
     *
     * @param userId 用户ID
     * @return 用户信息
     */
    UserDTO getUserInfo(Integer userId);

    /**
     * 获取用户存储统计信息
     *
     * @param userId 用户ID
     * @return 存储统计信息
     */
    StorageStatsDTO getStorageStats(Integer userId);

    /**
     * 更新用户已使用存储空间
     *
     * @param userId 用户ID
     * @param size   文件大小（字节），正数表示增加，负数表示减少
     * @return 是否更新成功
     */
    boolean updateStorageUsed(Integer userId, Long size);
} 